package com.leetcode;

import com.leetcode.common.TreeNode;

/**
 * 101. 对称二叉树
 * 递归写法
 *
 * @author fy
 * @date 2022-04-17 18:39
 */
public class Solution101_1 {

    public boolean isSymmetric(TreeNode root) {
        return check(root, root);
    }

    // 跟isSame的写法是很像的, 只是下次比较的节点是左右对调的
    private boolean check(TreeNode node1, TreeNode node2) {
        if (node1 == null && node2 == null) {
            return true;
        }
        if (node1 == null || node2 == null) {
            return false;
        }
        if (node1.val != node2.val) {
            return false;
        }
        // 下次比较的节点是左右对调的
        return check(node1.left, node2.right) && check(node1.right, node2.left);
    }

    public static void main(String[] args) {

    }

}
